<?php
namespace App\Admin\Controllers\Traits\WxSubSettingTraits;

use App\Admin\Renderable\PlateRender;
use App\Jobs\UserBgColorUpdateJob;
use App\Models\WxPlate;
use App\Wen\Utils\AdminUtils;
use App\Wen\Utils\FieldUtils;
use App\Wen\Utils\GatewayUtils;
use App\Wen\Utils\Settings;
use App\Wen\Utils\SiteUtils;
use Dcat\Admin\Form\NestedForm;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Widgets\Form;
use Illuminate\Http\Request;

trait formSubPageMineTrait{
    public function index_subpagemine(Content $content)
    {
        global $__MINI_GLOBAL_TENANT_ID__;
        if($__MINI_GLOBAL_TENANT_ID__ > 0){
            return $content->title('用户相关')
//            ->body($this->buildPreviewButton())
//            ->body($this->newline())
                ->body(
                    <<<HTML
<div class="card">{$this->form_subpagemine()->render()}</div>
HTML
                );
        }else{
            exit('错误');
        }
    }
    protected function form_subpagemine(){
        $form = new Form();
        $form->confirm('您确定要提交表单吗？', 'content');
        $form->disableResetButton();
        $form->tab('我', function (Form $form) {
            $form->textarea('app_user_introduce', '默认简介')->help('用户默认简介')->default(Settings::get('app_user_introduce', '这个人很懒，还没有简介', true));
        });

        $form->tab('资料', function (Form $form) {
            $form->list('app_user_labels','用户标签')->default(Settings::get('app_user_labels', [], true));
        });

        $form->tab('登录', function (Form $form) {
            $form->image('app_login_bg', '登录背景图')->help('建议和默认图片大小。 <a href="https://img.mini.minisns.cn/2023/03/25/68b11834f85f49711ae1ba875f7d7ab1.jpg" download="app_login_bg.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('app_login_bg', 'https://img.mini.minisns.cn/2023/03/25/68b11834f85f49711ae1ba875f7d7ab1.jpg', true));
            $form->radio('app_login_bg_scroll', '背景')->options([0=>'静止', 1=>'滚动'])->default(Settings::get('app_login_bg_scroll', 1, true));
            $form->divider();

//            $form->image('user_background_maps', '用户默认背景')->help('<a href="https://img.mini.minisns.cn/icons/back.jpg" download="user_background_maps.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload()->default(Settings::get('user_background_maps', 'https://img.mini.minisns.cn/icons/back.jpg', true));
            $form->multipleSelectTable('app_login_default_plates', '用户默认选择的板块')->title('板块库')
                ->max(10)
                ->from(PlateRender::make())
                ->model(WxPlate::class, 'id', 'plate_name', 'selectTable:formSubPageMineTrait:app_login_default_plates')
                ->help('也就是第一次注册后，默认选择的板块，<a href="'.admin_url('plate').'" target="_blank">管理板块>></a><a href="https://doc.minisns.cn/doc/70/" target="_blank" style="color: red;">（ps：如何控制顺序?）&nbsp;</a>')->default(Settings::get('app_login_default_plates', '', true));
            $form->text('app_login_first_welcome_title', '欢迎语-标题')->help('第一次注册时以系统通知的方式发送给客户')->default(Settings::get('app_login_first_welcome_title', '欢迎来到'.Settings::get('app_title', '宠也', true)));
            if(__system_is_model_enable('laradocs', 'dcat-neditor')){
                $form->neditor('app_login_first_welcome', '欢迎语-内容')->help('以系统通知的方式')->default(Settings::get('app_login_first_welcome', '祝你在这里找到自己的朋友，并且玩的开心', true));
            }else{
                $form->editor('app_login_first_welcome', '欢迎语-内容')->width(4)->help('以系统通知的方式')->default(Settings::get('app_login_first_welcome', '祝你在这里找到自己的朋友，并且玩的开心', true));
            }
        });

        $form->tab('匿名', function (Form $form) {

            $form->table('anonymous_name_avatar','匿名资料库', function (NestedForm $table) {
                $table->text('name', '用户名')->placeholder('如：阿白，momo')->required();
                $table->image('avatar', '头像')->url('files/uploads')->uniqueName()->autoUpload();
            })->default(Settings::get('anonymous_name_avatar', '', true));

        });


        $form->tab('用户海报', function (Form $form) {
            $form->html(function () {
                return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">路径：/pagesB/playbill/userPoster</div>';
            }, '');

            $form->html(function () {
                return '<a href="https://img.mini.minisns.cn/images/bg/user_poster.png" target="_blank">查看效果</a>';
            }, '');

            $form->table('app_share_poster','图片样式', function (NestedForm $table) {
                $table->text('text1', '文本一')->default('我的二维码');
                $table->text('text2', '文本二')->default('邀请你加入女厕');
                $table->text('text3', '文本三')->default('躺着就能赚钱');
                $table->image('url', '背景')->help('建议图片 560*800 px。 <a href="https://img.mini.minisns.cn/2022/11/04/cc09ed8e1e17689b81a27aec1e471fe8.png" download="app_share_vip_img.jpg" target="_blank" style="color: steelblue">点击下载默认图</a>')->url('files/uploads')->uniqueName()->autoUpload();
            })->default(Settings::get('app_share_poster', '', true));
        });


        $form->tab('自助解封', function (Form $form) {
            $form->decimal('app_unban_one_hour_balance', '解除封号消耗余额/小时')->help('请自行换算到一天多少钱，一天24小时')->default(Settings::get('app_unban_one_hour_balance', 1.0, true));
            $form->decimal('app_unmute_one_hour_balance', '解除禁言消耗余额/小时')->help('请自行换算到一天多少钱，一天24小时')->default(Settings::get('app_unmute_one_hour_balance', 0.5, true));
        });

        $form->action('settings/action/subpagemine');
        return $form;
    }

    public function subpagemine(Request $request){
        global $__MINI_GLOBAL_TENANT_ID__;
        if($__MINI_GLOBAL_TENANT_ID__ > 0){
            SiteUtils::forget_config_data();
            Settings::set('app_user_introduce', $request->input('app_user_introduce'), true, true);
            Settings::set('app_user_labels', AdminUtils::list_fiele_process($request->input('app_user_labels')), true, true);
            Settings::set('app_login_bg_scroll', $request->input('app_login_bg_scroll'), true, true);
            Settings::set('app_login_bg', $request->input('app_login_bg'), true, true);
//        Settings::set('user_background_maps', $request->input('user_background_maps'), true, true);
            Settings::set('app_login_default_plates', AdminUtils::_multipleSelectTable_order_process('selectTable:formSubPageMineTrait:app_login_default_plates', $request->input('app_login_default_plates')) , true, true);
            Settings::set('app_login_first_welcome_title', $request->input('app_login_first_welcome_title'), true, true);
            Settings::set('app_login_first_welcome', $request->input('app_login_first_welcome'), true, true);
            Settings::set('anonymous_name_avatar', AdminUtils::_table_data($request->input('anonymous_name_avatar')), true, true);
            Settings::set('app_share_poster', AdminUtils::_table_data($request->input('app_share_poster')), true, true);
            Settings::set('app_unban_one_hour_balance', $request->input('app_unban_one_hour_balance'), true, true);
            Settings::set('app_unmute_one_hour_balance', $request->input('app_unmute_one_hour_balance'), true, true);
//        UserBgColorUpdateJob::dispatch(0, true);

            $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
            Settings::set('__global_config_version__', $__global_config_version__);
            GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);
            return $this->response()->success('成功！');
        }else{
            return $this->response()->error('错误！');
        }
    }

}
